c5cd5622cd391b7fdd3d3b10dadd92ce10d7cf08,cathode/src/main/java/net/simonvt/cathode/provider/DatabaseSchematic.java,DatabaseSchematic,onUpgrade,#Context#SQLiteDatabase#number#number#,539
Before Change
db.execSQL(TRIGGER_SHOW_UPDATE);
db.execSQL(TRIGGER_SEASON_UPDATE);
db.execSQL(TRIGGER_EPISODE_UPDATE);
db.execSQL(TRIGGER_MOVIES_UPDATE);
db.execSQL(TRIGGER_PEOPLE_UPDATE);
}
if (oldVersion < 14) {
db.execSQL(CathodeDatabase.LISTS);
db.execSQL(CathodeDatabase.LIST_ITEMS);
db.execSQL(TRIGGER_LIST_DELETE);
db.execSQL(TRIGGER_LIST_UPDATE);
db.execSQL(TRIGGER_LISTITEM_UPDATE);
}
if (oldVersion < 15) {
db.execSQL(INDEX_SEASON_SHOW_ID);
db.execSQL(INDEX_CHARACTERS_SHOW_ID);
db.execSQL(INDEX_GENRE_SHOW_ID);
db.execSQL(INDEX_CAST_MOVIE_ID);
db.execSQL(INDEX_CREW_MOVIE_ID);
db.execSQL(INDEX_GENRE_MOVIE_ID);
}
if (oldVersion < 16) {
Set<String> showColumns = SqlUtils.columns(db, Tables.SHOWS);
if (!showColumns.contains(HiddenColumns.HIDDEN_CALENDAR)) {
db.execSQL("ALTER TABLE " + Tables.SHOWS + " ADD COLUMN " + HiddenColumns.HIDDEN_CALENDAR
+ " INTEGER DEFAULT 0");
}
if (!showColumns.contains(HiddenColumns.HIDDEN_COLLECTED)) {
db.execSQL("ALTER TABLE " + Tables.SHOWS + " ADD COLUMN " + HiddenColumns.HIDDEN_COLLECTED
+ " INTEGER DEFAULT 0");
}
if (!showColumns.contains(HiddenColumns.HIDDEN_WATCHED)) {
db.execSQL("ALTER TABLE " + Tables.SHOWS + " ADD COLUMN " + HiddenColumns.HIDDEN_WATCHED
+ " INTEGER DEFAULT 0");
}
if (!showColumns.contains(HiddenColumns.HIDDEN_RECOMMENDATIONS)) {
db.execSQL(
"ALTER TABLE " + Tables.SHOWS + " ADD COLUMN " + HiddenColumns.HIDDEN_RECOMMENDATIONS
+ " INTEGER DEFAULT 0");
}
Set<String> seasonColumns = SqlUtils.columns(db, Tables.SEASONS);
if (!seasonColumns.contains(HiddenColumns.HIDDEN_CALENDAR)) {
db.execSQL("ALTER TABLE " + Tables.SEASONS + " ADD COLUMN " + HiddenColumns.HIDDEN_CALENDAR
+ " INTEGER DEFAULT 0");
}
if (!seasonColumns.contains(HiddenColumns.HIDDEN_COLLECTED)) {
db.execSQL("ALTER TABLE " + Tables.SEASONS + " ADD COLUMN " + HiddenColumns.HIDDEN_COLLECTED
+ " INTEGER DEFAULT 0");
}
if (!seasonColumns.contains(HiddenColumns.HIDDEN_WATCHED)) {
db.execSQL("ALTER TABLE " + Tables.SEASONS + " ADD COLUMN " + HiddenColumns.HIDDEN_WATCHED
+ " INTEGER DEFAULT 0");
}
if (!seasonColumns.contains(HiddenColumns.HIDDEN_RECOMMENDATIONS)) {
db.execSQL(
"ALTER TABLE " + Tables.SEASONS + " ADD COLUMN " + HiddenColumns.HIDDEN_RECOMMENDATIONS
+ " INTEGER DEFAULT 0");
}
Set<String> movieColumns = SqlUtils.columns(db, Tables.MOVIES);
if (!movieColumns.contains(HiddenColumns.HIDDEN_CALENDAR)) {
db.execSQL("ALTER TABLE " + Tables.MOVIES + " ADD COLUMN " + HiddenColumns.HIDDEN_CALENDAR
+ " INTEGER DEFAULT 0");
}
if (!movieColumns.contains(HiddenColumns.HIDDEN_COLLECTED)) {
db.execSQL("ALTER TABLE " + Tables.MOVIES + " ADD COLUMN " + HiddenColumns.HIDDEN_COLLECTED
+ " INTEGER DEFAULT 0");
}
if (!movieColumns.contains(HiddenColumns.HIDDEN_WATCHED)) {
db.execSQL("ALTER TABLE " + Tables.MOVIES + " ADD COLUMN " + HiddenColumns.HIDDEN_WATCHED
+ " INTEGER DEFAULT 0");
}
if (!movieColumns.contains(HiddenColumns.HIDDEN_RECOMMENDATIONS)) {
db.execSQL(
"ALTER TABLE " + Tables.MOVIES + " ADD COLUMN " + HiddenColumns.HIDDEN_RECOMMENDATIONS
+ " INTEGER DEFAULT 0");
}
}
if (oldVersion < 17) {
db.execSQL(INDEX_EPISODES_SHOW_ID);
db.execSQL(INDEX_EPISODES_SEASON_ID);
}
if (oldVersion < 18) {
db.execSQL(CathodeDatabase.COMMENTS);
db.execSQL(CathodeDatabase.USERS);
db.execSQL("DROP TRIGGER IF EXISTS " + TriggerName.SHOW_DELETE);
db.execSQL("DROP TRIGGER IF EXISTS " + TriggerName.MOVIE_DELETE);
db.execSQL(TRIGGER_SHOW_DELETE);
db.execSQL(TRIGGER_MOVIE_DELETE);
db.execSQL(TRIGGER_COMMENT_UPDATE);
After Change
.build();
@OnUpgrade
public static void onUpgrade(Context context, SQLiteDatabase db, int oldVersion, int newVersion) {
if (oldVersion < 12) {
db.execSQL("DROP TABLE IF EXISTS shows");
db.execSQL("DROP TABLE IF EXISTS showTopWatchers");
db.execSQL("DROP TABLE IF EXISTS topEpisodes");
db.execSQL("DROP TABLE IF EXISTS showActors");
db.execSQL("DROP TABLE IF EXISTS showGenres");
db.execSQL("DROP TABLE IF EXISTS seasons");
db.execSQL("DROP TABLE IF EXISTS episodes");
db.execSQL("DROP TABLE IF EXISTS movies");
db.execSQL("DROP TABLE IF EXISTS movieGenres");
db.execSQL("DROP TABLE IF EXISTS movieTopWatchers");
db.execSQL("DROP TABLE IF EXISTS movieActors");
db.execSQL("DROP TABLE IF EXISTS movieDirectors");
db.execSQL("DROP TABLE IF EXISTS movieWriters");
db.execSQL("DROP TABLE IF EXISTS movieProducers");
db.execSQL("DROP TABLE IF EXISTS showSearchSuggestions");
db.execSQL("DROP TABLE IF EXISTS movieSearchSuggestions");
db.execSQL("DROP TRIGGER IF EXISTS episodeInsert");
db.execSQL("DROP TRIGGER IF EXISTS episodeUpdateAired");
db.execSQL("DROP TRIGGER IF EXISTS episodeUpdateWatched");
db.execSQL("DROP TRIGGER IF EXISTS episodeUpdateCollected");
CathodeDatabase.getInstance(context).onCreate(db);
}
if (oldVersion < 13) {
SqlUtils.createColumnIfNotExists(db, Tables.SHOWS, LastModifiedColumns.LAST_MODIFIED,
DataType.Type.INTEGER, "0");
SqlUtils.createColumnIfNotExists(db, Tables.SEASONS, LastModifiedColumns.LAST_MODIFIED,
DataType.Type.INTEGER, "0");
SqlUtils.createColumnIfNotExists(db, Tables.EPISODES, LastModifiedColumns.LAST_MODIFIED,
DataType.Type.INTEGER, "0");
SqlUtils.createColumnIfNotExists(db, Tables.SHOW_CAST,
LastModifiedColumns.LAST_MODIFIED, DataType.Type.INTEGER, "0");
SqlUtils.createColumnIfNotExists(db, Tables.MOVIES, LastModifiedColumns.LAST_MODIFIED,
DataType.Type.INTEGER, "0");
SqlUtils.createColumnIfNotExists(db, Tables.MOVIE_CAST, LastModifiedColumns.LAST_MODIFIED,
DataType.Type.INTEGER, "0");
SqlUtils.createColumnIfNotExists(db, Tables.MOVIE_CREW, LastModifiedColumns.LAST_MODIFIED,
DataType.Type.INTEGER, "0");
SqlUtils.createColumnIfNotExists(db, Tables.PEOPLE, LastModifiedColumns.LAST_MODIFIED,
DataType.Type.INTEGER, "0");
}
if (oldVersion < 14) {
db.execSQL(CathodeDatabase.LISTS);
db.execSQL(CathodeDatabase.LIST_ITEMS);
}
if (oldVersion < 16) {
Set<String> showColumns = SqlUtils.columns(db, Tables.SHOWS);
if (!showColumns.contains(HiddenColumns.HIDDEN_CALENDAR)) {
db.execSQL("ALTER TABLE " + Tables.SHOWS + " ADD COLUMN " + HiddenColumns.HIDDEN_CALENDAR
+ " INTEGER DEFAULT 0");
}
if (!showColumns.contains(HiddenColumns.HIDDEN_COLLECTED)) {
db.execSQL("ALTER TABLE " + Tables.SHOWS + " ADD COLUMN " + HiddenColumns.HIDDEN_COLLECTED
+ " INTEGER DEFAULT 0");
}
if (!showColumns.contains(HiddenColumns.HIDDEN_WATCHED)) {
db.execSQL("ALTER TABLE " + Tables.SHOWS + " ADD COLUMN " + HiddenColumns.HIDDEN_WATCHED
+ " INTEGER DEFAULT 0");
}
if (!showColumns.contains(HiddenColumns.HIDDEN_RECOMMENDATIONS)) {
db.execSQL(
"ALTER TABLE " + Tables.SHOWS + " ADD COLUMN " + HiddenColumns.HIDDEN_RECOMMENDATIONS
+ " INTEGER DEFAULT 0");
}
Set<String> seasonColumns = SqlUtils.columns(db, Tables.SEASONS);
if (!seasonColumns.contains(HiddenColumns.HIDDEN_CALENDAR)) {
db.execSQL("ALTER TABLE " + Tables.SEASONS + " ADD COLUMN " + HiddenColumns.HIDDEN_CALENDAR
+ " INTEGER DEFAULT 0");
}
if (!seasonColumns.contains(HiddenColumns.HIDDEN_COLLECTED)) {
db.execSQL("ALTER TABLE " + Tables.SEASONS + " ADD COLUMN " + HiddenColumns.HIDDEN_COLLECTED
+ " INTEGER DEFAULT 0");
}
if (!seasonColumns.contains(HiddenColumns.HIDDEN_WATCHED)) {
db.execSQL("ALTER TABLE " + Tables.SEASONS + " ADD COLUMN " + HiddenColumns.HIDDEN_WATCHED
+ " INTEGER DEFAULT 0");
}
if (!seasonColumns.contains(HiddenColumns.HIDDEN_RECOMMENDATIONS)) {
db.execSQL(
"ALTER TABLE " + Tables.SEASONS + " ADD COLUMN " + HiddenColumns.HIDDEN_RECOMMENDATIONS
+ " INTEGER DEFAULT 0");
}
Set<String> movieColumns = SqlUtils.columns(db, Tables.MOVIES);
if (!movieColumns.contains(HiddenColumns.HIDDEN_CALENDAR)) {
db.execSQL("ALTER TABLE " + Tables.MOVIES + " ADD COLUMN " + HiddenColumns.HIDDEN_CALENDAR
+ " INTEGER DEFAULT 0");
}
if (!movieColumns.contains(HiddenColumns.HIDDEN_COLLECTED)) {
db.execSQL("ALTER TABLE " + Tables.MOVIES + " ADD COLUMN " + HiddenColumns.HIDDEN_COLLECTED
+ " INTEGER DEFAULT 0");
}
if (!movieColumns.contains(HiddenColumns.HIDDEN_WATCHED)) {
db.execSQL("ALTER TABLE " + Tables.MOVIES + " ADD COLUMN " + HiddenColumns.HIDDEN_WATCHED
+ " INTEGER DEFAULT 0");
}
if (!movieColumns.contains(HiddenColumns.HIDDEN_RECOMMENDATIONS)) {
db.execSQL(
"ALTER TABLE " + Tables.MOVIES + " ADD COLUMN " + HiddenColumns.HIDDEN_RECOMMENDATIONS
+ " INTEGER DEFAULT 0");
}
}
if (oldVersion < 18) {
db.execSQL(CathodeDatabase.COMMENTS);
db.execSQL(CathodeDatabase.USERS);
}
if (oldVersion < 19) {
Set<String> showColumns = SqlUtils.columns(db, Tables.SHOWS);
if (!showColumns.contains(ShowColumns.LAST_COMMENT_SYNC)) {
db.execSQL("ALTER TABLE " + Tables.SHOWS + " ADD COLUMN " + ShowColumns.LAST_COMMENT_SYNC
+ " INTEGER DEFAULT 0");
}
}
if (oldVersion < 20) {
Set<String> movieColumns = SqlUtils.columns(db, Tables.MOVIES);
if (!movieColumns.contains(MovieColumns.LAST_COMMENT_SYNC)) {
db.execSQL("ALTER TABLE " + Tables.MOVIES + " ADD COLUMN " + MovieColumns.LAST_COMMENT_SYNC
+ " INTEGER DEFAULT 0");
}
}
if (oldVersion < 21) {
SqlUtils.createColumnIfNotExists(db, Tables.SHOWS, ShowColumns.LAST_SYNC,
DataType.Type.INTEGER, "0");
SqlUtils.createColumnIfNotExists(db, Tables.SHOWS, ShowColumns.LAST_CREDITS_SYNC,
DataType.Type.INTEGER, "0");
SqlUtils.createColumnIfNotExists(db, Tables.MOVIES, MovieColumns.LAST_SYNC,
DataType.Type.INTEGER, "0");
SqlUtils.createColumnIfNotExists(db, Tables.MOVIES, MovieColumns.LAST_CREDITS_SYNC,
DataType.Type.INTEGER, "0");
final long currentTime = System.currentTimeMillis();
ContentValues values = new ContentValues();
values.put(ShowColumns.LAST_SYNC, currentTime);
values.put(ShowColumns.LAST_CREDITS_SYNC, currentTime);
db.update(Tables.SHOWS, values, null, null);
values = new ContentValues();
values.put(MovieColumns.LAST_SYNC, currentTime);
values.put(MovieColumns.LAST_CREDITS_SYNC, currentTime);
db.update(Tables.MOVIES, values, null, null);
}
if (oldVersion < 22) {
SqlUtils.createColumnIfNotExists(db, Tables.SHOWS, ShowColumns.ANTICIPATED_INDEX,
DataType.Type.INTEGER, "-1");
SqlUtils.createColumnIfNotExists(db, Tables.MOVIES, MovieColumns.ANTICIPATED_INDEX,
DataType.Type.INTEGER, "-1");
}
if (oldVersion < 23) {
SqlUtils.createColumnIfNotExists(db, Tables.EPISODES, EpisodeColumns.LAST_COMMENT_SYNC,
DataType.Type.INTEGER, "0");
}
if (oldVersion < 24) {
SqlUtils.createColumnIfNotExists(db, Tables.SHOWS, ShowColumns.WATCHING,
DataType.Type.INTEGER, "0");
db.execSQL(TRIGGER_EPISODE_UPDATE_WATCHING);
}
if (oldVersion < 25) {
db.execSQL("DROP TABLE IF EXISTS showSearchSuggestions");
db.execSQL("DROP TABLE IF EXISTS movieSearchSuggestions");
db.execSQL(CathodeDatabase.RECENT_QUERIES);
}
if (oldVersion < 26) {
db.execSQL(CathodeDatabase.SHOW_RELATED);
db.execSQL(CathodeDatabase.MOVIE_RELATED);
}
if (oldVersion < 27) {
SqlUtils.createColumnIfNotExists(db, Tables.SHOWS, ShowColumns.LAST_RELATED_SYNC,
DataType.Type.INTEGER, "0");
SqlUtils.createColumnIfNotExists(db, Tables.MOVIES, MovieColumns.LAST_RELATED_SYNC,
DataType.Type.INTEGER, "0");
}
if (oldVersion < 28) {
db.execSQL("ALTER TABLE showCharacters RENAME TO " + Tables.SHOW_CAST);
db.execSQL(CathodeDatabase.SHOW_CREW);
}
if (oldVersion < 29) {
SqlUtils.createColumnIfNotExists(db, Tables.PEOPLE, PersonColumns.SCREENSHOT, DataType.Type.TEXT,
null);
}
if (oldVersion < 30) {
SqlUtils.createColumnIfNotExists(db, Tables.PEOPLE, PersonColumns.LAST_SYNC,
DataType.Type.INTEGER, "0");
}
if (oldVersion < 31) {
SqlUtils.createColumnIfNotExists(db, Tables.SHOWS, ShowColumns.LAST_CREDITS_SYNC,
DataType.Type.INTEGER, "0");
SqlUtils.createColumnIfNotExists(db, Tables.MOVIES, MovieColumns.LAST_CREDITS_SYNC,
DataType.Type.INTEGER, "0");
}
if (oldVersion < 32) {
SqlUtils.createColumnIfNotExists(db, Tables.EPISODES, EpisodeColumns.IMAGES_LAST_SYNC,
DataType.Type.INTEGER, "0");
SqlUtils.createColumnIfNotExists(db, Tables.PEOPLE, PersonColumns.IMAGES_LAST_SYNC,
DataType.Type.INTEGER, "0");
}
if (oldVersion < 33) {
SqlUtils.createColumnIfNotExists(db, Tables.SHOWS, ShowColumns.IMAGES_LAST_SYNC,
DataType.Type.INTEGER, "0");
SqlUtils.createColumnIfNotExists(db, Tables.MOVIE_CAST, MovieColumns.IMAGES_LAST_SYNC,
DataType.Type.INTEGER, "0");
}
if (oldVersion < 34) {
SqlUtils.createColumnIfNotExists(db, Tables.SHOWS, ShowColumns.BACKDROP,
DataType.Type.TEXT, null);
SqlUtils.createColumnIfNotExists(db, Tables.MOVIES, MovieColumns.BACKDROP,
DataType.Type.TEXT, null);
SqlUtils.createColumnIfNotExists(db, Tables.PEOPLE, PersonColumns.SCREENSHOT,
DataType.Type.TEXT, null);
}
if (oldVersion < 35) {
ContentValues showValues = new ContentValues();
showValues.putNull(ShowColumns.BACKDROP);
showValues.putNull(ShowColumns.POSTER);
db.update(Tables.SHOWS, showValues, null, null);
ContentValues episodeValues = new ContentValues();
episodeValues.putNull(EpisodeColumns.SCREENSHOT);
db.update(Tables.EPISODES, episodeValues, null, null);
ContentValues movieValues = new ContentValues();
movieValues.putNull(MovieColumns.BACKDROP);
movieValues.putNull(MovieColumns.POSTER);
db.update(Tables.MOVIES, movieValues, null, null);
ContentValues personValues = new ContentValues();
personValues.putNull(PersonColumns.SCREENSHOT);
personValues.putNull(PersonColumns.HEADSHOT);
db.update(Tables.PEOPLE, personValues, null, null);
}
if (oldVersion < 36) {
db.execSQL("DROP TRIGGER IF EXISTS showDelete");
db.execSQL("DROP TRIGGER IF EXISTS movieDelete");
db.execSQL(TRIGGER_EPISODE_UPDATE_AIRED);
db.execSQL(TRIGGER_EPISODE_UPDATE_WATCHED);
db.execSQL(TRIGGER_EPISODE_UPDATE_COLLECTED);
db.execSQL(TRIGGER_EPISODE_UPDATE_WATCHING);
db.execSQL(TRIGGER_EPISODE_INSERT);
db.execSQL(TRIGGER_SHOW_DELETE);
db.execSQL(TRIGGER_SEASON_DELETE);
db.execSQL(TRIGGER_EPISODE_DELETE);
db.execSQL(TRIGGER_MOVIE_DELETE);
db.execSQL(TRIGGER_SHOW_UPDATE);
db.execSQL(TRIGGER_SEASON_UPDATE);
db.execSQL(TRIGGER_EPISODE_UPDATE);
db.execSQL(TRIGGER_MOVIES_UPDATE);
db.execSQL(TRIGGER_PEOPLE_UPDATE);
db.execSQL(TRIGGER_LIST_DELETE);
db.execSQL(TRIGGER_LIST_UPDATE);
db.execSQL(TRIGGER_LISTITEM_UPDATE);
db.execSQL(TRIGGER_COMMENT_UPDATE);
db.execSQL("DROP INDEX IF EXISTS characterShowId");
db.execSQL(INDEX_CAST_SHOW_ID);
db.execSQL(INDEX_CREW_SHOW_ID);
db.execSQL(INDEX_RELATED_SHOW_ID);
db.execSQL(INDEX_SEASON_SHOW_ID);
db.execSQL(INDEX_GENRE_SHOW_ID);
db.execSQL(INDEX_CAST_MOVIE_ID);
db.execSQL(INDEX_CREW_MOVIE_ID);
db.execSQL(INDEX_RELATED_MOVIE_ID);
db.execSQL(INDEX_GENRE_MOVIE_ID);
db.execSQL(INDEX_EPISODES_SHOW_ID);
db.execSQL(INDEX_EPISODES_SEASON_ID);
}
}
}